
import javax.microedition.lcdui.StringItem;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Filib
 */
public class Controlador {

    private final GPS gps;
    private boolean EnEjecucion;
    private int frecuencia;

    private StringItem siEvento;
    private StringItem siLatitud;
    private StringItem siLongitud;
    private StringItem siVelocidad;
    private StringItem siURL;
    private StringItem siPString;
    private StringItem siHora;
    private double flon=0;
    private double flat=0;
    public Controlador()
    {
        gps = new GPS();
        EnEjecucion = true;
        frecuencia = 60000;
    }

    public boolean getEnEjecucionServicioGPS()
    {
        return EnEjecucion;
    }

    public void setEnEjecucionServicioGPS(boolean EnEjecucion)
    {
        this.EnEjecucion = EnEjecucion;
    }

   private Configuracion getDefaultConfiguracion(){
        Configuracion c = new Configuracion(
                "www.localicel.com",//host al q se enviara la info
                80,//puerto
                "mobile/mobile.php",//contexto
                //usuario que se esta reportando
                1);//frecuencia con la que se enviaran los datos en mins

         /*"www.federicoucros.com",//host al q se enviara la info
                80,//puerto
                "mobile/mobile.php",//contexto
                //usuario que se esta reportando
                1);//frecuencia con la que se enviaran los datos en mins*/
        return c;
    }

    public void startServicioGPS()
    {
        new Thread()
        {
            public void run()
            {
                while(EnEjecucion)
                {
                    try
                    {


                        if (flon==flat)
                        {
                        gps.actualizarPosicion();



                        if(siEvento!=null)
                        {
                            siEvento.setText(String.valueOf(gps.getEvento()));

                        }

                        if(siLatitud!=null)
                        {
                             siLatitud.setText(String.valueOf(gps.getLatitud()));
                        }

                        if(siLongitud != null)
                        {
                            siLongitud.setText(String.valueOf(gps.getLongitud()));
                        }

                        if(siVelocidad!=null)
                        {
                            siVelocidad.setText(String.valueOf(gps.getVelocidad()));
                        }

                        if(siHora!=null)
                        {
                            siHora.setText(String.valueOf(gps.getHora()));
                        }


                        Configuracion c = getDefaultConfiguracion();



                        if(c != null)
                        {
                            
                            String url = ComunicacionHttp.urlEncode(c.toUrl());

                            //String usuario = c.getUsuario();

                            
                            long frecuencia = c.getFrecuenciaEnMins();

                            //gps.actualizarPosicion();


                            flon=gps.getLongitud();
                            flat=gps.getLatitud();

                            String trama = gps.getEvento() + "&"
                                    +"lon="+gps.getLongitud() + "&"
                                    +"lat="+ gps.getLatitud() + "&"
                                    +"fecha="+ gps.getFecha() + "&"
                                    +"hora="+ gps.getHora();

                          //url=url+"?"+trama;
                          //http://federicoucros.com/mobile/mobile.php?llave=20&lon=30&lat=33&fecha=2012/02/02&hora=4:32
                          if(siURL!=null)
                            {
                                siURL.setText(" url normal " + url + " UrlEncode "+c.toUrl());
                            }

                            Parametros p = new Parametros();
                            p.addParam("llave", trama);

                            if(siPString!=null)
                            {
                                siPString.setText(p.toString());
                            }

                           
                            ComunicacionHttp.enviar(url, p.toString());
                         }
                          long t = 0;
                            while(EnEjecucion && t < frecuencia){
                                t = t + 1000;
                                Thread.sleep(1000);
                            }

                    }
                   }
                    catch(Exception ex)
                    {
                        ex.getMessage();
                    }
                }
            }
        }.start();
    }

    public int getFrecuencia()
    {
        return frecuencia;
    }

    public void setFrecuencia(int frecuencia)
    {
        this.frecuencia = frecuencia;
    }

    public void setSiEvento(StringItem siEvento)
    {
        this.siEvento = siEvento;
    }

    public void setSiLatitud(StringItem siLatitud)
    {
        this.siLatitud = siLatitud;
    }

    public void setSiLongitud(StringItem siLongitud)
    {
        this.siLongitud = siLongitud;
    }

    public void setSiVelocidad(StringItem siVelocidad)
    {
        this.siVelocidad = siVelocidad;
    }

    public void setSiURL(StringItem siUrl)
    {
        this.siURL = siUrl;
    }

    public void setPString(StringItem siPString)
    {
        this.siPString = siPString;
    }

    public void setHora(StringItem siHora)
    {
        this.siHora = siHora;
    }


}
